/*
 * @lc app=leetcode.cn id=55 lang=cpp
 *
 * [55] 跳跃游戏
 */

// @lc code=start
class Solution
{
public:
    bool canJump(vector<int> &nums)
    {
        //贪心解决跳跃游戏 实际上就是每次取最大值 寻找最大的跳跃范围
        //这个题其实也是比较经典的动态规划
        int len = 0; //覆盖的长度
        for (int i = 0; i <= len; i++)
        {
            len = max(len, i + nums[i]);
            if (len >= nums.size() - 1)
            {
                return true;
            }
        }
        return false;
    }
};
// @lc code=end
